perm filename SORT.LSP[W78,JMC] blob sn#327649 filedate 1978-01-08 generic text, type C, neo UTF8
COMMENT āŠ—   VALID 00002 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002
C00004 ENDMK
CāŠ—;


(DEFUN GGET (N U) 
       (COND ((NULL U) (CONS NIL NIL))
	     ((ZEROP N) (CONS (LIST (CAR U)) (CDR U)))
	     (T ((LAMBDA (Z) (COND ((NULL (CDR Z)) Z)
				   (T ((LAMBDA (W) 
					       (CONS (MERGE (CAR Z)
							    (CAR W))
						     (CDR W)))
				       (GGET (SUB1 N) (CDR Z))))))
		 (GGET (SUB1 N) U))))) 

(DEFUN MERGE (U V) 
       (COND ((NULL U) V)
	     ((NULL V) U)
	     ((LESSP2 (CAR U) (CAR V))
	      (CONS (CAR U) (MERGE (CDR U) V)))
	     (T (CONS (CAR V) (MERGE U (CDR V)))))) 

(defun lessp2 (x y) ((lambda (z) (lessp x y)) (setq c (add1 c))))


(DEFUN SORT1 (U N S) 
       (COND ((NULL U) S)
	     (T ((LAMBDA (Z) (COND ((NULL (CDR Z)) (MERGE S (CAR Z)))
				   (T (SORT1 (CDR Z)
					     (ADD1 N)
					     (MERGE S (CAR Z))))))
		 (GGET N U)))))
 

(DEFUN SORT (U) (SORT1 U 0 NIL))
 
(defun sort2 (u) (car (gget 20 u)))

(setq c 0)